MQTT_Disconnect-Baustein

Kurz-Information

Name

MQTT_Disconnect

→POE-Typ

→Funktion

Kategorie

Weitere Systembausteine, MQTT, Baustein mit interner Fehlerdiagnose

Grafische Schnittstelle

Verfügbar ab

Version 2.0.17 (für Bibliothek System) und Version 4.5.0 des →Laufzeitsystems

(Warnung) Dieser Baustein wird für die integrierte SPS und →Raspberry unterstützt.

Funktionalität

Der Baustein trennt die Verbindung zu einem →MQTT-Broker. Dafür wird der Verbindungshandler verwendet, der zuvor beim Aufruf des MQTT_Connect-Bausteins erhalten wurde.

(Info) Die Übertragung der Daten erfolgt mit Hilfe eines bereits vorhandenen MQTT-Brokers (siehe "Datenübertragung via MQTT vorbereiten/durchführen").

Eingänge, Ausgänge, Ergebniswert

 

Bezeichner

→Datentyp

Beschreibung

Eingänge:

ch

DINT

Verbindungshandler, wie vom MQTT_Connect-Baustein erhalten

Ausgänge:

rc

MQTT_RC

Ergebniscode der beteiligten MQTT-Funktionen, wie im Datentyp MQTT_RC definiert

Der Eingang EN und der Ausgang ENO sind für den →Aufruf des Bausteins verfügbar. Siehe "Ausführungssteuerung: EN, ENO" für Informationen zum Eingang EN und zum Ausgang ENO.

Informieren Sie sich unter:

Interne Fehlerdiagnose für Baustein

Der Baustein prüft folgende Fehlerfälle und setzt – bei Auftreten dieser Fehlerfälle – den Ausgang ENO des Bausteins auf den Wert FALSE (oder eine Entsprechung):

  • Während des Sendens einer Benachrichtigung an das →Laufzeitsystem ist ein interner Fehler aufgetreten.

  • Die Funktionalität des Bausteins konnte nicht ausgeführt werden.

Beispiel für Verwendung im ST-Editor

PROGRAM MQTTConnectDisconnectExample
    VAR
        connection_handler : DINT := -1;
        return_code : MQTT_RC;
        subscriber_state : MQTT_SUBSCRIBER_STATE := MQTT_SUBSCRIBER_STATE#INVALID;
        connect_flag : BOOL := FALSE;
    END_VAR
    
    subscriber_state := MQTT_GetState(ch := connection_handler, rc => return_code, ENO => ENO);
    
    /* If the connect flag is set... */
    IF connect_flag THEN
        /* ...make sure the client is connected to a broker... */
        IF subscriber_state <> MQTT_SUBSCRIBER_STATE#CONNECTING AND subscriber_state <> MQTT_SUBSCRIBER_STATE#CONNECTED THEN
            connection_handler := MQTT_Connect(address := 'tcp://192.168.1.100:1883', clientId := 'RTS1', rc => return_code, ENO => ENO);
        END_IF; 
        /* ...and if it is connected... */
        IF subscriber_state = MQTT_SUBSCRIBER_STATE#CONNECTED THEN
            /* ...deal with MQTT topics and messages inside this block */
        END_IF; 
    /* If the connect flag is NOT set... */
    ELSE
        /* ...and the client is connected to a broker... */
        IF subscriber_state = MQTT_SUBSCRIBER_STATE#CONNECTED THEN
            /* ...disconnect the client from this broker */
            MQTT_Disconnect(ch := connection_handler, rc => return_code, ENO => ENO);
        END_IF;
    END_IF;
END_PROGRAM

Bei der Erstellung Ihrer Anwendung im ST-Editor erstellen Sie den Aufruf eines Bausteins, indem Sie den laut Syntax erforderlichen Text eintippen oder die Inhaltshilfe verwenden.